home *** CD-ROM | disk | FTP | other *** search
- property pSpr, pMember, pTimer, pLimit, pReverse, member1, member2, pMaxScroll
- global gDemoVersion
-
- on beginSprite me
- pSpr = sprite(me.spriteNum)
- if gDemoVersion then
- member1 = member("credits for demo")
- else
- member1 = member("credits")
- end if
- pSpr.member = member1
- pSpr.member.scrollTop = 0
- pLimit = seconds(3)
- pTimer = newTimer(me)
- member2 = member("fake credits")
- pReverse = 1
- pMaxScroll = maxScrolling(me)
- end
-
- on maxScrolling me
- return charPosToLoc(pSpr.member, pSpr.member.text.length).locV - pSpr.rect.height
- end
-
- on newTimer me
- return nowTicks() + pLimit
- end
-
- on exitFrame me
- if pSpr.member.scrollTop >= pMaxScroll then
- if pReverse <> -1 then
- pTimer = newTimer(me)
- pReverse = -1
- end if
- else
- if pSpr.member.scrollTop < 10 then
- if pReverse <> 1 then
- pTimer = newTimer(me)
- pReverse = 1
- end if
- end if
- end if
- elapsed = ticksSince(pTimer)
- cut1 = 60
- rate1 = 5.0
- offset1 = cut1 / rate1
- cut2 = 120
- rate2 = 3.0
- offset2 = ((cut2 - cut1) / rate2) + offset1
- if elapsed > 0 then
- if elapsed < cut1 then
- scrollMe = elapsed / rate1
- else
- if elapsed < cut2 then
- scrollMe = offset1 + ((elapsed - cut1) / rate2)
- else
- scrollMe = offset2 + ((elapsed - cut2) / 1.5)
- end if
- end if
- if pReverse = 1 then
- pSpr.member.scrollTop = scrollMe
- else
- pSpr.member.scrollTop = pMaxScroll - scrollMe
- end if
- end if
- end
-
- on mouseDown me
- if the shiftDown and the optionDown then
- if pSpr.member <> member2 then
- member2.scrollTop = member1.scrollTop
- pSpr.member = member2
- end if
- else
- if the shiftDown then
- nothing()
- else
- if pSpr.member <> member1 then
- member1.scrollTop = member2.scrollTop
- pSpr.member = member1
- end if
- end if
- end if
- pMaxScroll = maxScrolling(me)
- elapsed = ticksSince(pTimer)
- repeat while the mouseDown
- nothing()
- end repeat
- pTimer = nowTicks() - elapsed
- end
-